-- BP 7.1.6 content: ModelClass syschar: 3 persistence-version: 7.1.6

INSERT INTO O_OBJ
	VALUES ("53d291ec-adfb-47af-99bd-e8db3efa4144",
	'Single Layer',
	1002,
	'SLP',
	'A single layer partitioning is drawn using one supertype with two or more 
subtypes attached. It represents a single supertype partitioning of an object.',
	"00000000-0000-0000-0000-000000000000");
INSERT INTO O_TFR
	VALUES ("534c823e-d753-496f-aaa5-df7cc73882d8",
	"53d291ec-adfb-47af-99bd-e8db3efa4144",
	'two_way_init',
	'An example of single-level, two-way subtyping is object A as supertype with 
subtype objects B and C.





Diagram:

+---------+ +---------+
|    B    | |    C    |
|         | |         |
+---------+ +---------+
     |           |
     +-----------+
           |
      +---------+
      |    A    |
      |         |
      +---------+
',
	"ba5eda7a-def5-0000-0000-000000000000",
	1,
	'create object instance domain of DOM;
create object instance modeled_domain of MDOM;
relate domain to modeled_domain across R1;
create object instance objA of OBJ;
relate objA to modeled_domain across R105;
create object instance subA of SUB;
relate subA to objA across R107;
// Subset B
create object instance subB of SUB;
create object instance psubB of PRP;
relate subB to psubB across R107;
create object instance non_psubB of NSB;
relate psubB to non_psubB across R108;
// Subset C
create object instance subC of SUB;
create object instance psubC of PRP;
relate subC to psubC across R107;
create object instance non_psubC of NSB;
relate psubC to non_psubC across R108;
// Supertype A
create object instance superA of SUP;
create object instance chdA of CHD;
relate objA to superA across R134 using chdA;
create object instance subtypeB of SBT;
relate superA to psubB across R122 using subtypeB;
create object instance subtypeC of SBT;
relate superA to psubC across R122 using subtypeC;
create object instance obsC of OBS;
relate obsC to subtypeC across R126;
create object instance sbsC of SBS;
relate sbsC to obsC across R125;
// Attributes
// Make the first one an identifier, as you can''t create instances without an 
// identifier.
create object instance attribute1 of ATR;
create object instance nonref1 of NRA;
relate attribute1 to nonref1 across R103;
create object instance objectAttribute1 of OA;
relate objectAttribute1 to attribute1 across R124;
relate objectAttribute1 to objA across R129;
create object instance identifier1 of ID;
create object instance participation1 of IDP;
relate identifier1 to attribute1 across R102 using participation1;
// Make the second one a specializer for subtype B.
create object instance attribute2 of ATR;
create object instance nonref2 of NRA;
relate attribute2 to nonref2 across R103;
create object instance attribution2 of SPA;
relate attribution2 to attribute2 across R124;
relate attribution2 to psubB across R130;
create object instance objectSpecialization2 of OBS;
relate attribution2 to objectSpecialization2 across R125;
relate objectSpecialization2 to subtypeB across R126;
// Create an instance of subtype B
create object instance instance1 of INS;
relate instance1 to subB across R112;
create object instance instantiation1 of ITN;
relate instance1 to identifier1 across R101 using instantiation1;
// Create an instance of subtype C
create object instance instance2 of INS;
relate instance2 to subC across R112;
create object instance instantiation2 of ITN;
relate instance2 to identifier1 across R101 using instantiation2;

',
	1,
	'',
	"00000000-0000-0000-0000-000000000000",
	0);
INSERT INTO O_TFR
	VALUES ("b16c0e62-afb6-432f-9a52-1987f5024440",
	"53d291ec-adfb-47af-99bd-e8db3efa4144",
	'three_way_init',
	'An example of single-level, three-way subtyping is object A as supertype with 
subtype objects B, C, and D.





Diagram:

+---------+ +---------+ +---------+
|    B    | |    C    | |    D    |
|         | |         | |         |
+---------+ +---------+ +---------+
     |           |           |
     +-----------+-----------+
                 |
            +---------+
            |    A    |
            |         |
            +---------+
',
	"ba5eda7a-def5-0000-0000-000000000000",
	1,
	'create object instance domain of DOM;
create object instance modeled_domain of MDOM;
relate domain to modeled_domain across R1;
create object instance objA of OBJ;
relate objA to modeled_domain across R105;
create object instance subA of SUB;
relate subA to objA across R107;
// Subset B
create object instance subB of SUB;
create object instance psubB of PRP;
relate subB to psubB across R107;
create object instance non_psubB of NSB;
relate psubB to non_psubB across R108;
// Subset C
create object instance subC of SUB;
create object instance psubC of PRP;
relate subC to psubC across R107;
create object instance non_psubC of NSB;
relate psubC to non_psubC across R108;
// Subset D
create object instance subD of SUB;
create object instance psubD of PRP;
relate subD to psubD across R107;
create object instance non_psubD of NSB;
relate psubD to non_psubD across R108;
// Supertype A
create object instance superA of SUP;
create object instance chdA of CHD;
relate superA to objA across R134 using chdA;
create object instance subtypeB of SBT;
relate superA to psubB across R122 using subtypeB;
create object instance subtypeC of SBT;
relate superA to psubC across R122 using subtypeC;
create object instance subtypeD of SBT;
relate superA to psubD across R122 using subtypeD;
create object instance obsD of OBS;
relate obsD to subtypeD across R126;
create object instance sbsD of SBS;
relate sbsD to obsD across R125;
// Attributes
// Make the first one an identifier, as you can''t create instances without an 
// identifier.
create object instance attribute1 of ATR;
create object instance nonref1 of NRA;
relate attribute1 to nonref1 across R103;
create object instance objectAttribute1 of OA;
relate objectAttribute1 to attribute1 across R124;
relate objectAttribute1 to objA across R129;
create object instance identifier1 of ID;
create object instance participation1 of IDP;
relate identifier1 to attribute1 across R102 using participation1;
// Make the second one a specializer for subtype B.
create object instance attribute2 of ATR;
create object instance nonref2 of NRA;
relate attribute2 to nonref2 across R103;
create object instance attribution2 of SPA;
relate attribution2 to attribute2 across R124;
create object instance objectSpecialization2 of OBS;
relate objectSpecialization2 to attribution2 across R125;
relate objectSpecialization2 to subtypeB across R126;
// Make the third one a specializer for subtype C.
create object instance attribute3 of ATR;
create object instance nonref3 of NRA;
relate attribute3 to nonref3 across R103;
create object instance attribution3 of SPA;
relate attribution3 to attribute3 across R124;
create object instance objectSpecialization3 of OBS;
relate objectSpecialization3 to attribution3 across R125;
relate objectSpecialization3 to subtypeC across R126;
// Create an instance of subtype 1
create object instance instance1 of INS;
relate instance1 to subB across R112;
create object instance instantiation1 of ITN;
relate instance1 to identifier1 across R101 using instantiation1;
// Create an instance of subtype 2
create object instance instance2 of INS;
relate instance2 to subC across R112;
create object instance instantiation2 of ITN;
relate instance2 to identifier1 across R101 using instantiation2;
// Create an instance of subtype 3
create object instance instance3 of INS;
relate instance3 to subD across R112;
create object instance instantiation3 of ITN;
relate instance3 to identifier1 across R101 using instantiation3;',
	1,
	'',
	"534c823e-d753-496f-aaa5-df7cc73882d8",
	0);
INSERT INTO O_ID
	VALUES (0,
	"53d291ec-adfb-47af-99bd-e8db3efa4144");
INSERT INTO O_ID
	VALUES (1,
	"53d291ec-adfb-47af-99bd-e8db3efa4144");
INSERT INTO O_ID
	VALUES (2,
	"53d291ec-adfb-47af-99bd-e8db3efa4144");
INSERT INTO PE_PE
	VALUES ("53d291ec-adfb-47af-99bd-e8db3efa4144",
	1,
	"6e3add14-c14c-40a1-95a3-bbc196442c2d",
	"00000000-0000-0000-0000-000000000000",
	4);
INSERT INTO EP_PKG_PROXY
	VALUES ("6e3add14-c14c-40a1-95a3-bbc196442c2d",
	"00000000-0000-0000-0000-000000000000",
	"c8b88000-dddc-4206-8410-2f69b8f86b67",
	'Object Subsystem Tests',
	'This package can be used to check various instantiation scenarios for the 
object subsystem.
Current usage: Create an unspecialized object, and create each of the types of 
specialized objects.',
	1000,
	'../Object Subsystem Tests.xtuml');
